The goal of the Cold Spring Harbor Laboratory Course in Programming for Biology is to provide biologists with the advanced knowledge and programming tools they need to deal with the genomic information explosion. Complementary to training in web tools such as BLAST, this course teaches researchers how to manage, analyze and display large data sets by creating programs, databases, and other software systems that combine existing and custom tools and platforms. Beginning with an intensive training in procedural Perl programming, this 14 day course follows with object-oriented Perl, the BioPerl library and state-of-the-art Next Generation Sequence analysis tools and methods. We emphasize the design and implementation of complex analysis pipelines that directly address a biologist's research questions using practical software engineering and scientific computing methods. The course combines formal lectures with extensive hands-on laboratories in which students solve a series of computational problem sets drawn from common scenarios in biology research and data management. In a three-day final project that solidifies the course's teachings, students pose real-life problems using their own data and work in groups with faculty to solve them.